
import 'package:flutter/material.dart';
import 'package:flutter/scheduler.dart';
import 'package:test_flutter/common/style/common_style.dart';
import 'package:test_flutter/page/login_page.dart';

/// 欢迎页面
class WelcomePage extends StatefulWidget{

  @override
  State<StatefulWidget> createState() {
    print("createState");
    /// 创建StatefulWidget时会立即执行，且只执行一次
    return _WelcomePage();
  }

}

class _WelcomePage<WelcomePage> extends State{

  _WelcomePage() {
    print("_WelcomePage");
  }

  @override
  void initState() {
    super.initState();
    print("initState");
    /// StatefulWidget创建完后调用的第一个方法，且执行一次，类似onCreate()
    /// 此处的View并没有渲染，但StatefulWidget已经被加载到渲染树中，mount值变为true,dispose才会为false
    /// 可在此处做一些初始化操作

    SchedulerBinding.instance?.addPostFrameCallback((_) => {
      /// StatefulWidget渲染结束的回调，只会被调用一次，之后的StatefulWidget需要刷新UI也不会被调用
      print("addPostFrameCallback")
    });

    Future.delayed(Duration(seconds: 3), (){
      print("delayed");
      Navigator.of(context).pop();
      Navigator.of(context).push(MaterialPageRoute(builder: (context) => LoginPage()));
//      Navigator.of(context).pushAndRemoveUntil(MaterialPageRoute(builder: (context) => WidgetDemoPage()), (route) => route == null);
//      Navigator.of(context).pop();
    });
  }

  @override
  void didChangeDependencies() {
    super.didChangeDependencies();
    print("didChangeDependencies");
    /// 在initState方法后面执行，之后StatefulWidget刷新时不会执行，除非StatefulWidget依赖的
    /// InheritedWidget发生变化后，才会执行改方法
  }

  @override
  void didUpdateWidget(StatefulWidget oldWidget) {
    super.didUpdateWidget(oldWidget);
    print("didUpdateWidget");
    /// 使用key对widget进行复用时才会调用
  }

  @override
  void deactivate() {
    super.deactivate();
    print("deactivate");
    /// 当要将State对象从渲染树中移除时，就会调用deactivate生命周期，这标志着StatefulWidget将要销毁，
    /// 但有时候State不会被销毁，而是重新插入到渲染树中。
  }

  @override
  void dispose() {
    super.dispose();
    print("dispose");
    /// 当View不需要显示，从渲染树中移除的时候，State就会永久的从渲染树中移除，就会调用Dispose生命周期，
    /// 这里做一些取消监听，移除动画的操作
  }

  @override
  Widget build(BuildContext context) {
    print("_WelcomePage build");
    return Container(
      color: UIColors.common_color_red,
      child: Image.asset("static/images/ic_welcome.png", fit: BoxFit.fill,),
//      child: Stack(
//        children: <Widget>[
//          Container(
//            color: UIColors.common_color_blue,
//            child: Image.asset("static/images/ic_welcome.png", fit: BoxFit.fill,),
//          )
//        ],
//      ),
    );
//    return Container(
//      color: UIColors.common_color_black,
//      decoration: BoxDecoration(
//        image: DecorationImage(
//          image: AssetImage("static/images/ic_welcome.png"),
//          fit: BoxFit.cover
//        )
//      ),
//    );
  }


}